package models

import (
	"demo/device-hub/constants/types"
)

//go:generate tools gen model2 Platform --database DBVideoHub --with-comments
// 平台配置表
// @def primary ID
// @def unique_index uk_platform_id PlatformID
type Platform struct {
	PrimaryID
	RefPlatformID
	RefPlatformInfo
	OperationTimesWithDeletedAt
}

type PlatformID = SFID

type RefPlatformID struct {
	// @rel Platform.PlatformID
	// 平台ID
	PlatformID PlatformID `db:"f_platform_id" json:"platformID,omitempty"`
}

type RefPlatformInfo struct {
	// 平台地址
	URI string `db:"f_uri" json:"uri"`
	// 端口
	PORT int8 `db:"f_port,default='80'" json:"port"`
	// 平台协议
	Protocol types.PlatformProtocol `db:"f_protocol,default='1'" json:"protocol"`
	// 平台类型
	Type types.PlatformType `db:"f_type,default='1'" json:"type"`
	// 平台key
	Key string `db:"f_key,default=''" json:"key,omitempty"`
	// 平台密码
	Secret string `db:"f_secret,default=''" json:"secret,omitempty"`
	// 平台配置
	Configuration string `db:"f_configuration,size=65535,default=''" json:"configuration,omitempty"`
	// 平台名称
	Name string `db:"f_name,default=''" json:"name,omitempty"`
	// 平台描述
	Desc string `db:"f_desc,size=65535,default=''" json:"desc,omitempty"`
}
